package ssov5

import (
	"gitee.com/micro-plat/sso/apiserver/api/modules/biz/member"
	"github.com/micro-plat/hydra"
)

//userLogin 用户登录
func userLogin(ctx hydra.IContext) (r interface{}) {
	ctx.Log().Info("--------用户名密码登录----------")

	ctx.Log().Info("1. 执行操作")
	data, err := remotingLogin(ctx.Request().GetString("user_name"),
		ctx.Request().GetString("password"))
	if err != nil {
		return err
	}

	ctx.User().Auth().Response(data)
	ctx.Log().Info("2. 返回数据")
	return data
}
func userLogout(ctx hydra.IContext) (r interface{}) {
	ctx.User().Auth().Response(map[string]interface{}{})
	return nil
}

//userMenus 用户菜单
func userMenus(ctx hydra.IContext) (r interface{}) {
	ctx.Log().Info("--------获取用户菜单----------")

	ctx.Log().Info("1. 获取用户信息")
	ms := &member.MemberState{}
	if err := ctx.User().Auth().Bind(ms); err != nil {
		return err
	}

	ctx.Log().Info("2. 远程获取菜单")
	data, err := remotingGetMenu(ms.UserID)
	if err != nil {
		return err
	}
	ctx.Log().Info("3. 返回数据")
	return data
}

//userMenus 用户菜单
func systemInfo(ctx hydra.IContext) (r interface{}) {
	ctx.Log().Info("--------获取系统信息----------")

	ctx.Log().Info("1. 获取系统信息")
	data, err := remotingSystem()
	if err != nil {
		return err
	}
	ctx.Log().Info("2. 返回数据")
	return data
}

//getUserInfo 获取用户信息
func getUserInfo(ctx hydra.IContext) (r interface{}) {
	ctx.Log().Info("--------获取用户信息----------")

	ctx.Log().Info("1. 获取用户信息")
	ms := &member.MemberState{}
	if err := ctx.User().Auth().Bind(ms); err != nil {
		return err
	}
	return ms
}
